﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace PPE_gestion_commercial
{
    public partial class SuppClient : Form
    {
        // Définition des variables pour la connexion avec SQL Server
        SqlConnection connex;
        SqlCommand cmd;
        SqlDataReader dr;
        SqlDataReader dr2;
        SqlDataReader dr3;
        int idClient;
        private string strconn = "server=78.241.116.47;Network Library=DBMSSOCN; database=gestion; User Id=Gestion; Password=gestion";

        public static int id;
        public string typeRep;

        public SuppClient(string type)
        {
            InitializeComponent();
            typeRep = type;
        }

        // Fonction qui s'exécute lors du lancement du Form
        private void Form7_Load(object sender, EventArgs e)
        {
            // Définition de la DataGridView : Nombre et Noms des colonnes
            dataGridView1.ColumnCount = 3;
            dataGridView1.Columns[0].Name = "Nom du Client";
            dataGridView1.Columns[1].Name = "Prenom du Client";
            dataGridView1.Columns[2].Name = "id client";
            dataGridView1.Columns[2].Visible = false;

            // Connexion à la base
            connex = new SqlConnection();
            connex.ConnectionString = strconn;
            connex.Open();

            // On récupère les noms et prenoms des clients qui se trouvent dans la BDD
            string sql = "Select NomClient,PrenomClient, IdClient from client";
            cmd = new SqlCommand(sql, connex);
            dr = cmd.ExecuteReader();
            int j = 0;

            // On remplit par une boucle la datagridview selon les colonnes
            while (dr.Read())
            {
                dataGridView1.RowCount = j + 1;
                for (int i = 0; i < dr.FieldCount; i++)
                {
                    dataGridView1.Rows[j].Cells[i].Value = dr[i].ToString();
                }
                j++;
            }

            // Fermeture du curseur
            dr.Close();
            // Fermeture de la connexion à la BDD
            connex.Close();
        }

        //Fontion pour vider les données contenues dans les textBoxs
        private void vider()
        {
            nomBox.Clear();
            prenomBox.Clear();
            numBox.Clear();
            adBox.Clear();
            cpBox.Clear();
            villeBox.Clear();
            paysBox.Clear();
            telBox.Clear();
            emailBox.Clear();
        }

        // Fonction quand on clique ou doubleclique sur un élément de la DatagridView
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            //Définition des variables
            int colonne = e.ColumnIndex;
            int ligne = e.RowIndex;
            string selection;
            string type;

            string nom = "";
            string prenom = "";
            string num = "";
            string ad = "";
            string cp = "";
            string ville = "";
            string pays = "";
            string tel = "";
            string email = "";

            // Appel de la fonction qui vide les textBoxs
            vider();

            // On récupère l'id de la case cliquée
            selection = this.dataGridView1.Rows[ligne].Cells[2].Value.ToString();

            // Connexion à la base
            connex = new SqlConnection();
            connex.ConnectionString = strconn;
            connex.Open();

            // On récupère les clients dans la BDD qui ont pour valeur, de type NomClient ou PrenomClient, la valeur cliqué
            string sql2 = "Select * from client where IdClient = " + selection;
            cmd = new SqlCommand(sql2, connex);
            dr2 = cmd.ExecuteReader();

            // On remplit les variables avec une boucle
            while (dr2.Read())
            {
                idClient = Convert.ToInt16(dr2[0].ToString());
                nom = dr2[1].ToString();
                prenom = dr2[2].ToString();
                num = dr2[3].ToString();
                ad = dr2[4].ToString();
                cp = dr2[5].ToString();
                ville = dr2[6].ToString();
                pays = dr2[7].ToString();
                tel = dr2[8].ToString();
                email = dr2[9].ToString();
            }

            // Fermeture du curseur
            dr2.Close();
            // Fermeture de la connexion à la BDD
            connex.Close();

            // On remplit les textBoxs avec les variables pré-remplies
            nomBox.Text = nom;
            prenomBox.Text = prenom;
            numBox.Text = num;
            adBox.Text = ad;
            cpBox.Text = cp;
            villeBox.Text = ville;
            paysBox.Text = pays;
            telBox.Text = tel;
            emailBox.Text = email;
        }

        // Fonction qui s'exécute lorqu'on clique sur le bouton Supprimer
        private void button1_Click(object sender, EventArgs e)
        {
            // On définit le type de suppression pour l'envoyer dans la form de confirmation
            // ici C'est client
            string type = "client";
            Confirmation f9 = new Confirmation(type, "DELETE FROM client where IdClient=" + idClient);
            f9.Show();
        }

        // Fonction qui s'exécute si l'utilisateur a cliquer sur "Oui"
        private void suppClient()
        {
            /*
            // Connexion à la base
            connex = new SqlConnection();
            connex.ConnectionString = strconn;
            connex.Open();

            // Requête qui va supprimer le Client sélectionné dans la BDD
            string sql3 = "DELETE FROM client where IdClient="+id;
            cmd = new SqlCommand(sql3, connex);
            dr3 = cmd.ExecuteReader();

            // Fermeture du curseur
            dr3.Close();
            // Fermeture de la connexion à la base
            connex.Close();

            //Affichage
            MessageBox.Show("Votre client a été supprimé!");
             * */
        }

        private void button2_Click(object sender, EventArgs e)
        {

        }

        private void supprimerToolStripMenuItem_Click(object sender, EventArgs e)
        {
            SuppProduit f8 = new SuppProduit("");
            f8.Show();
            this.Close();
        }
        private void supprimerToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            SuppClient f7 = new SuppClient("");
            f7.Show();
            this.Close();
        }

        private void modifierToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            ModifClient f5 = new ModifClient();
            f5.Show();
            this.Close();
        }

        private void modifierToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ModifProduit f6 = new ModifProduit();
            f6.Show();
            this.Close();
        }
        private void ajouterToolStripMenuItem_Click(object sender, EventArgs e)
        {
            AjoutProduit f4 = new AjoutProduit();
            f4.Show();
            this.Close();
        }

        private void ajouterToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            AjoutClient f2 = new AjoutClient();
            f2.Show();
            this.Close();
        }
    }
}
